package com.cloudknow.utils;

/**
 * 关于字符串方面的工具类
 */
public class StringUtils {
    /**
     * 判断字符串是否为空或者空字符串
     *
     * @return 如果字符串是空或空字符串则返回true，否则返回false
     */
    public static boolean isNull(String str) {
        if (str == null || "".equals(str) || str.equals("null")) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 字符串转换成double型
     *
     * @param doubleString 字符串
     */
    public static double String2Double(String doubleString) {
        try {
            if (isNull(doubleString)) {
                return 0.0;
            } else {
                return Double.parseDouble(doubleString);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return 0.0;
        }
    }

    /**
     * 字符串转换成int型整数
     * @param intString 字符串
     * @return
     */
    public static int String2int(String intString) {
        try {
            if (isNull(intString)) {
                return 0;
            } else {
                return Integer.parseInt(intString);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 截取字符串str中指定字符 strStart、strEnd之间的字符串
     *
     * @param str       全部字符串
     * @param strStart  开始字段
     * @param strEnd    结束字段
     * @return  截取后的字符
     */
    public static String subString(String str, String strStart, String strEnd) {

        /* 找出指定的2个字符在 该字符串里面的 位置 */
        int strStartIndex = str.indexOf(strStart);
        int strEndIndex = str.indexOf(strEnd);

        /* index 为负数 即表示该字符串中 没有该字符 */
        if (strStartIndex < 0) {
            return "字符串 :---->" + str + "<---- 中不存在 " + strStart + ", 无法截取目标字符串";
        }
        if (strEndIndex < 0) {
            return "字符串 :---->" + str + "<---- 中不存在 " + strEnd + ", 无法截取目标字符串";
        }
        /* 开始截取 */
        String result = str.substring(strStartIndex, strEndIndex).substring(strStart.length());
        return result;
    }


    public static boolean isEmpty(final CharSequence s) {
        return s == null || s.length() == 0;
    }
}
